-# MAPNAME SYSTEM-USERNAME PG-USERNAME
-admin postgres postgres
-admin root postgres
-role postgres davical_dba
-role php5_davical davical_app
-user postgres agendav
-user root roundcube
-user /^php5_(.*)$ \1
-user /^(.*)$ \1
+# MAPNAME SYSTEM-USERNAME PG-USERNAME
+admin postgres postgres
+admin root postgres
+role postgres davical_dba
+role php5_davical davical_app
+role openerp_cyclofficines openerp_cyclo_ivry
+role openerp_cyclofficines openerp_cyclo_paris_est
+user postgres agendav
+user root roundcube
+user /^php5_(.*)$ \1
+user /^(.*)$ \1
+++ /dev/null
-home=/home/"$sv"
-
-"$tool"/local/apt-get-install openerp --force-yes --no-upgrade
- # XXX: --force-yes car les paquets de nightly.openerp.com
- # ne sont pas signés par OpenPGP..
-"$tool"/local/insserv-remove openerp
-
-while ! sudo -u postgres psql </dev/null
-do sleep 1; done
-"$tool"/local/postgresql-user-create "$sv"
-"$tool"/local/postgresql-database-create "$sv"
-sudo -u postgres psql -AqtX "$sv" <<-EOF
- \set ON_ERROR_STOP on
- GRANT USAGE ON SCHEMA pg_catalog TO $sv;
- GRANT SELECT ON TABLE pg_catalog.pg_attribute TO $sv;
- GRANT SELECT ON TABLE pg_catalog.pg_class TO $sv;
- GRANT SELECT ON TABLE pg_catalog.pg_constraint TO $sv;
- GRANT SELECT ON TABLE pg_catalog.pg_indexes TO $sv;
- GRANT SELECT ON TABLE pg_catalog.pg_proc TO $sv;
- GRANT SELECT ON TABLE pg_catalog.pg_type TO $sv;
- EOF
-
-"$tool"/local/adduser "$sv" \
- --disabled-login \
- --disabled-password \
- --group \
- --home "$home" \
- --shell /bin/false \
- --system
-"$tool"/local/adduser "$sv"-addon \
- --disabled-login \
- --disabled-password \
- --group \
- --home "$home"/addon.d \
- --shell /bin/false \
- --system
-
-sudo install -d -m 1777 -o root -g root \
- /etc/openerp
-sudo install -d -m 3771 -o "$sv" -g "$sv" \
- "$home"
-sudo install -d -m 2770 -o "$sv" -g "$sv"-addon \
- "$home"/addon.d
-sudo install -d -m 750 -o "$sv" -g "$sv" \
- "$home"/etc \
- /etc/openerp/"${sv#openerp_}"
-sudo ln -fns \
- /etc/openerp/"${sv#openerp_}" \
- "$home"/etc/openerp
-
-sudo adduser git "$sv"-addon
-sudo adduser "$sv" "$sv"-addon
-sudo adduser "$sv" postgres-data
-
-for addon in \
- bikecoop \
- bikecoop_l10n_fr \
- pos_membership \
- remembership \
- cyclofficine_paris_est
- do
- sudo install -d -m 2771 -o "$sv" -g "$sv"-addon \
- "$home"/addon.d/"$addon"
- sudo -u git git \
- --git-dir ~git-data/burette/"$addon".git \
- --work-tree="$home"/addon.d/"$addon" \
- checkout -f master
- sudo -u git git \
- --git-dir ~git-data/burette/"$addon".git \
- --work-tree="$home"/addon.d/"$addon" \
- clean -d -f -f -x
- sudo chmod a-x \
- /home/git/pub/burette/"$addon".git/hooks/post-update.sample
- sudo install -m 550 -o git -g git /dev/stdin \
- /home/git/pub/burette/"$addon".git/hooks/post-update <<-EOF
- #!/bin/sh -efux
- find . -type f -perm /+x -name 'post-update.*' |
- while IFS= read -r hook
- do "\$hook" "\$@"
- done
- EOF
- sudo install -m 550 -o git -g git /dev/stdin \
- /home/git/pub/burette/"$addon".git/hooks/post-update."$sv" <<-EOF
- #!/bin/sh -efux
- case \$1 in
- (refs/heads/master)
- git \\
- --git-dir ~git-data/burette/"$addon".git \\
- --work-tree="$home"/addon.d/"$addon" \\
- checkout -f master
- git \\
- --git-dir ~git-data/burette/"$addon".git \\
- --work-tree="$home"/addon.d/"$addon" \\
- clean -d -f -f -x
- #sv restart "$sv"
- ;;
- esac
- EOF
- done
-
-exit 42
+++ /dev/null
-eval "home=~$sv/log"
-
-"$tool"/local/adduser log-"$sv"\
- --disabled-login \
- --disabled-password \
- --group \
- --home "$home" \
- --shell /bin/false \
- --system
-
-sudo install -d -m 770 -o log-"$sv" -g log-"$sv" \
- "$home"
+++ /dev/null
-#!/bin/sh -eux
-sv=${PWD%/log}
-sv=${sv#/etc/sv/}
-eval home="~log-$sv"
-
-cd "$home"
-exec chpst -u log-"$sv":log-"$sv" \
- svlogd -v -tt "$home"
+++ /dev/null
-#!/bin/sh -eux
-exec 2>&1
-sv=${PWD#/etc/sv/}
-home=/home/"$sv"
-cd /
-export LOGNAME="$sv"
- # NOTE: openerp utilise /tmp/oe-sessions-$LOGNAME
-
-test -e /etc/openerp/"${sv#openerp_}"/server.conf ||
-/usr/bin/chpst \
- -u "$sv":"$sv":"$sv"-addon:postgres-data \
- /usr/bin/openerp-server \
- --addons-path="$home"/addon.d \
- --config /etc/openerp/"${sv#openerp_}"/server.conf \
- --database="$sv" \
- --db_host=/run/postgresql \
- --db_user="$sv" \
- --debug \
- --init=remembership,pos_membership,bikecoop \
- --load-language=fr_FR \
- --no-database-list \
- --no-xmlrpcs \
- --osv-memory-age-limit=0.1 \
- --proxy-mode \
- --save \
- --stop-after-init \
- --timezone="$(cat /etc/timezone)" \
- --without-demo=base \
- --workers=0 \
- --xmlrpc-interface=127.0.0.1 \
- --xmlrpc-port=8069 \
- # NOTE: si --workers > 0
- # --limit-memory-hard=$((300 * 1024 * 1024))
- # --limit-memory-soft=$((150 * 1024 * 1024))
-
-exec /usr/bin/chpst \
- -u "$sv":"$sv":"$sv"-addon:postgres-data \
- /usr/bin/openerp-server \
- --config "$home"/etc/openerp/server.conf \
- --load-language=fr_FR \
- #--database="$sv"
--- /dev/null
+home=/home/"$sv"
+
+"$tool"/local/apt-get-install openerp --force-yes --no-upgrade
+ # XXX: --force-yes car les paquets de nightly.openerp.com
+ # ne sont pas signés par OpenPGP..
+"$tool"/local/insserv-remove openerp
+
+"$tool"/local/adduser "$sv" \
+ --disabled-login \
+ --disabled-password \
+ --group \
+ --home "$home" \
+ --shell /bin/false \
+ --system
+"$tool"/local/adduser "$sv"-addon \
+ --disabled-login \
+ --disabled-password \
+ --group \
+ --home "$home"/addon.d \
+ --shell /bin/false \
+ --system
+
+sudo install -d -m 1777 -o root -g root \
+ /etc/openerp
+sudo install -d -m 3771 -o "$sv" -g "$sv" \
+ "$home"
+sudo install -d -m 2770 -o "$sv" -g "$sv"-addon \
+ "$home"/addon.d
+sudo ln -fns \
+ /etc/openerp \
+ "$home"/etc/openerp
+
+while ! sudo -u postgres psql </dev/null
+do sleep 1; done
+"$tool"/local/postgresql-role-create "$sv"
+for db in \
+ openerp_cyclo_ivry \
+ openerp_cyclo_paris_est
+ do
+ "$tool"/local/postgresql-user-create "$db"
+ "$tool"/local/postgresql-database-create "$db"
+ sudo install -d -m 750 -o "$sv" -g "$sv" \
+ "$home"/etc \
+ /etc/openerp/"$db"
+ done
+
+sudo -u postgres psql -AqtX "$sv" <<-EOF
+ \set ON_ERROR_STOP on
+ GRANT USAGE ON SCHEMA pg_catalog TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_attribute TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_class TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_constraint TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_indexes TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_proc TO $sv;
+ GRANT SELECT ON TABLE pg_catalog.pg_type TO $sv;
+ EOF
+
+sudo adduser git "$sv"-addon
+sudo adduser "$sv" "$sv"-addon
+sudo adduser "$sv" postgres-data
+
+for addon in \
+ bikecoop \
+ bikecoop_l10n_fr \
+ pos_membership \
+ remembership \
+ cyclofficine_paris_est
+ do
+ sudo install -d -m 2771 -o "$sv" -g "$sv"-addon \
+ "$home"/addon.d/"$addon"
+ sudo -u git git \
+ --git-dir ~git-data/burette/"$addon".git \
+ --work-tree="$home"/addon.d/"$addon" \
+ checkout -f master
+ sudo -u git git \
+ --git-dir ~git-data/burette/"$addon".git \
+ --work-tree="$home"/addon.d/"$addon" \
+ clean -d -f -f -x
+ sudo chmod a-x \
+ /home/git/pub/burette/"$addon".git/hooks/post-update.sample
+ sudo install -m 550 -o git -g git /dev/stdin \
+ /home/git/pub/burette/"$addon".git/hooks/post-update <<-EOF
+ #!/bin/sh -efux
+ find . -type f -perm /+x -name 'post-update.*' |
+ while IFS= read -r hook
+ do "\$hook" "\$@"
+ done
+ EOF
+ sudo install -m 550 -o git -g git /dev/stdin \
+ /home/git/pub/burette/"$addon".git/hooks/post-update."$sv" <<-EOF
+ #!/bin/sh -efux
+ case \$1 in
+ (refs/heads/master)
+ git \\
+ --git-dir ~git-data/burette/"$addon".git \\
+ --work-tree="$home"/addon.d/"$addon" \\
+ checkout -f master
+ git \\
+ --git-dir ~git-data/burette/"$addon".git \\
+ --work-tree="$home"/addon.d/"$addon" \\
+ clean -d -f -f -x
+ #sv restart "$sv"
+ ;;
+ esac
+ EOF
+ done
+
+exit 42
--- /dev/null
+eval "home=~$sv/log"
+
+"$tool"/local/adduser log-"$sv"\
+ --disabled-login \
+ --disabled-password \
+ --group \
+ --home "$home" \
+ --shell /bin/false \
+ --system
+
+sudo install -d -m 770 -o log-"$sv" -g log-"$sv" \
+ "$home"
--- /dev/null
+#!/bin/sh -eux
+sv=${PWD%/log}
+sv=${sv#/etc/sv/}
+eval home="~log-$sv"
+
+cd "$home"
+exec chpst -u log-"$sv":log-"$sv" \
+ svlogd -v -tt "$home"
--- /dev/null
+#!/bin/sh -eux
+exec 2>&1
+sv=${PWD#/etc/sv/}
+home=/home/"$sv"
+cd /
+export LOGNAME="$sv"
+ # NOTE: openerp utilise /tmp/oe-sessions-$LOGNAME
+
+for db in \
+ openerp_cyclo_ivry \
+ openerp_cyclo_paris_est
+ do
+ test -e /etc/openerp/"$db"/server.conf ||
+ /usr/bin/chpst \
+ -u "$sv":"$sv":"$sv"-addon:postgres-data \
+ /usr/bin/openerp-server \
+ --addons-path="$home"/addon.d \
+ --config /etc/openerp/"$db"/server.conf \
+ --database="$db" \
+ --db_host=/run/postgresql \
+ --db_user="$db" \
+ --debug \
+ --init=remembership,pos_membership,bikecoop \
+ --load-language=fr_FR \
+ --no-database-list \
+ --no-xmlrpcs \
+ --osv-memory-age-limit=0.1 \
+ --proxy-mode \
+ --save \
+ --stop-after-init \
+ --timezone="$(cat /etc/timezone)" \
+ --without-demo=base \
+ --workers=0 \
+ --xmlrpc-interface=127.0.0.1 \
+ --xmlrpc-port=8069 \
+ # NOTE: si --workers > 0
+ # --limit-memory-hard=$((300 * 1024 * 1024))
+ # --limit-memory-soft=$((150 * 1024 * 1024))
+ done
+
+exec /usr/bin/chpst \
+ -u "$sv":"$sv":"$sv"-addon:postgres-data \
+ /usr/bin/openerp-server \
+ --config /etc/openerp/"$db"/server.conf \
+ --load-language=fr_FR \
+ #--database="$sv"